介紹了關於寫arduino的IDE以及他的開發模擬器,今天要來介紹的是開啟新檔案後,就已經存在的setup及loop~還有一些functions的介紹。
這邊是用來設定初始狀態的地方,例如設定pin腳的mode(屬於input還是output)、LCD板子顯示器的狀態、一開始的電位狀態、時間的設定等其他需要在程式執行前完成的設置。
setup只會執行一次,執行好後就會開始執行loop的部分。
這裡是寫主程式的地方,且會一直重複執行。在setup()執行完後,就會開始執行loop,一直執行直到關閉arduino。
這裡寫個簡單的範例。
int ledPin = 1; //使用1號pin腳的LED
void setup() //初始設置,一開始執行或重置時執行一次
{
pinMode( ledPin, OUTPUT ); //將ledPin設置為輸出模式
}
void loop() //主程式,會不斷重複執行,直到關閉檔案
{
digitalWrite( ledPin, HIGH ); //ledPin亮燈
delay( 300 ); //持續這個狀態0.3秒
digitalWrite( ledPin, LOW ); //ledPin關燈
delay( 300 ); //持續此狀態0.3秒
}
上面這個例子,輸出結果為1號pin腳的led會亮0.3秒後暗0.3秒再繼續亮0.3秒,這樣不斷亮暗重複。
那在這個例子中,使用了幾個functions:pinMode()、digitalWrite()、delay()。
稍稍介紹一下這幾個function的功能:
那如果是使用類比元件,就會是使用analogWrite。
好啦,那在上一篇有提到,IDE裡面就有提供很多不同功能的sample code,如果有興趣的話,可以點開來看看~
那寫arduino跟寫C真的很像,除了在loop寫入主程式,我們也可以自己寫function,寫法都跟C一模一樣,只是main變成loop而已XD
那arduino在開發的過程中,通常也不會像我的舉例一樣那麼簡單只有一個燈的開關XD遇到很多功能結合在一起的時候,使用function會比較好~
這邊舉個使用function的例子:
int ledPin = 1; //使用1號pin腳的LED
int buzzer_pin = 11; //蜂鳴器的腳位
void setup() //初始設置,一開始執行或重置時執行一次
{
pinMode( ledPin, OUTPUT ); //將ledPin設置為輸出模式
pinMode( buzzer_pin, OUTPUT ); //將蜂鳴器設為輸入模式
}
void loop() //主程式,會不斷重複執行,直到關閉檔案
{
initial(); //初始化,把所有元件功能都關掉
light(); //控制LED燈
buzzer(); //控制蜂鳴器
}
void initial()
{
digitalWrite(ledPin,LOW); //關燈
noTone(buzzer_pin); //關蜂鳴器
}
void light() //燈光閃爍
{
digitalWrite(ledPin,HIGH);
delay(300);
digitalWrite(ledPin,LOW);
delay(300);
digitalWrite(ledPin,HIGH); //除非執行到initial,除非一直開
}
void buzzer() //打開蜂鳴器
{
tone(buzzer_pin,1046,500);
delay(1000);
}
在這裡使用了LED燈及蜂鳴器,蜂鳴器的使用之後會再介紹。執行好setup後loop就不斷的執行,所以LED跟蜂鳴器就會先被關掉、然後跑到他們的function後被啟動、再被關掉、再啟動這樣不斷地執行,直到關掉。
今天就先到這邊~